package dev.alm.langchain4jspringbootdemo.service;

import dev.langchain4j.agent.tool.P;
import dev.langchain4j.agent.tool.Tool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Slf4j
@Service
public class ToolService {
    // @Tool，这个注解告诉AI，当遇到什么对话时，调用这个function call
    // @P，这个注解告诉AI，应该提取什么信息
    @Tool("某某地方有多少姓名为某某的人")
    public Integer changshaNameCount(@P("姓名") String name, @P("地区") String location) {
        log.info(location);
        log.info(name);
        return 20;
    }

    @Tool("某某地区的领导人是某某吗")
    public String leaderOfLocation(@P("姓名") String name, @P("地区") String location) {
        log.info(location);
        log.info(name);
        return "是";
    }

    @Tool("用户想要退票")
    public String refund(@P("退票原因") String reason, @P("姓名") String name, @P("班次") String ticket) {
        log.info(reason);
        log.info(name);
        log.info(ticket);
        return "退票成功";
    }
}
